package leetcode;

/**
 * 编写一个函数来查找字符串数组中的最长公共前缀。
 *
 * 如果不存在公共前缀，返回空字符串 ""。
 *
 * 示例 1:
 *
 * 输入: ["flower","flow","flight"]
 * 输出: "fl"
 * 示例 2:
 *
 * 输入: ["dog","racecar","car"]
 * 输出: ""
 * 解释: 输入不存在公共前缀。
 *
 *
 * 两两求
 *
 * @author: cuihao
 * @create: 2020-05-13 23:16
 **/
public class LongestCommonPrefix {
    public static void main(String[] args) {
        String[] strings = {"flower","flow","flight"};
        String ans = solution(strings);
        System.out.println(ans);
    }

    public static String solution(String[] strs) {
        if (strs.length == 0) {
            return "";
        }
        String ans = strs[0];
        for (int i = 1; i < strs.length; i++) {
            String curStr = strs[i];
            if (curStr.equals("")) {
                return "";
            }
            for (int j = 0; j < ans.length() && j < curStr.length(); j++) {
                if (ans.charAt(j) != curStr.charAt(j)) {
                    ans = ans.substring(0, j);
                    break;
                }
            }
            ans = ans.substring(0, Math.min(ans.length(), curStr.length()));
        }
        return ans;
    }
}
